package com.qianxin.ids.idam.am.authn.factors.cass.upsso;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Test {
    private static final Logger log = LoggerFactory.getLogger(Test.class);

    public static void main(String[] args) {
        // 示例的 key 和 IV（初始化向量）
        String aesKey = "d5e3wmyuyt4riyq2"; // 16字节的密钥
        String IV = "fiyme84mairygdwl";    // 16字节的IV

        // 用户和密码
        String user = "jishurenyuan";
        String pwd = "testPassword";

        // 初始化 AES 加密，使用 CBC 模式和 ZeroPadding
        AES aes = new AES(Mode.CBC, Padding.ZeroPadding, aesKey.getBytes(), IV.getBytes());

        // 加密用户和密码
        byte[] aesUser = aes.encrypt(user);
        byte[] aesPwd = aes.encrypt(pwd);

        // 打印加密后的字节数组（未编码）
        log.info("AES 加密后，用户【{}】，密码【{}】", new String(aesUser), new String(aesPwd));

        // 将加密后的结果进行Base64编码
        String baseUser = Base64.encode(aesUser);
        String basePwd = Base64.encode(aesPwd);

        // 打印最终的Base64编码结果
        log.info("Base64 编码后，用户【{}】，密码【{}】", baseUser, basePwd);
    }
}
